﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TVH.Comum.Db;
using TVH.Comum;


namespace TVH.Entidade
{
    [Tabela("T11_USUARIO")]
    [Serializable]
    public class Usuario
    {
        [UsarNo(UsarNoAttribute.EnumUsarEm.Alteracao | UsarNoAttribute.EnumUsarEm.Exclusao)]
        [Coluna("cd_usuario", true)]
        public int? Id { get; set; }

        [UsarNo(UsarNoAttribute.EnumUsarEm.Alteracao | UsarNoAttribute.EnumUsarEm.Insercao)]
        [Coluna("ds_login")]
        public string Login { get; set; }

        [UsarNo(UsarNoAttribute.EnumUsarEm.Alteracao | UsarNoAttribute.EnumUsarEm.Insercao)]
        [Coluna("nm_usuario")]
        public string Nome { get; set; }

        string _senhaCriptografada;
        [UsarNo(UsarNoAttribute.EnumUsarEm.Alteracao | UsarNoAttribute.EnumUsarEm.Insercao)]
        [Coluna("tx_senha")]
        public string SenhaCriptografada
        {
            get
            {
                if (_senhaCriptografada != null) return _senhaCriptografada;
                if (SenhaLimpa == null) return null;
                return SenhaLimpa.Criptografar();
            }
            set
            {
                _senhaCriptografada = value;
            }
        }
        string _senhaLimpa;
        public string SenhaLimpa
        {
            get
            {
                return _senhaLimpa;
            }
            set
            {
                _senhaLimpa = value;
                _senhaCriptografada = null;
            }
        }

        [UsarNo(UsarNoAttribute.EnumUsarEm.Alteracao | UsarNoAttribute.EnumUsarEm.Insercao)]
        [Coluna("cd_setor")]
        public int? IdSetor { get; set; }

        [Coluna("ds_setor")]
        public string Setor { get; set; }
        
        [UsarNo(UsarNoAttribute.EnumUsarEm.Alteracao | UsarNoAttribute.EnumUsarEm.Insercao)]
        [Coluna("cd_predio")]
        public int? IdPredio { get; set; }

        [Coluna("ds_identificacao_predio")]
        public string Predio { get; set; }

        public bool VerificarPermissao(string sigla)
        {
            return true;
        }
    }
}
